This relates to integrated circuits and, more particularly, to programmable integrated circuits.
Programmable integrated circuits are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design tools to design a custom logic circuit. When the design process is complete, the computer-aided design tools generate configuration data. The configuration data is loaded into memory elements on a programmable integrated circuit to configure the device to perform the functions of the custom logic circuit.
Configuration data may be supplied to a programmable device in the form of a configuration bit stream. After a first configuration bit stream has been loaded onto a programmable device, the programmable device may be reconfigured by loading a different configuration bit stream in a process known as reconfiguration. An entire set of configuration data is often loaded during reconfiguration. Sometimes, only a subset of the configuration data is loaded during a process known as partial reconfiguration.
Programmable devices may be used for co-processing in big-data or fast-data applications. For example, programmable devices may be used in application acceleration tasks in a datacenter and may be reprogrammed during datacenter operation to perform different tasks. Oftentimes, an active configuration of a programmable device could be a result of many partial reconfiguration events that is difficult to track or tedious to repeat.
It is within this context that the embodiments herein arise.